The field of digital data compression and in particular digital image compression has attracted great interest for some time.
In the field of digital image compression, many different techniques have been utilised. In particular, one popular technique is the JPEG standard, which utilises the discrete cosine transform to transform standard size blocks of an image into corresponding cosine components. In this respect the higher frequency cosine components are heavily quantized so as to assist in obtaining substantial compression. The heavy quantization is an example of a lossy technique of image compression. The JPEG standard also provides for the subsequent lossless compression of the transform coefficients.
Recently, the field of wavelet transforms has gained great attention as an alternative form of data compression. The wavelet transform has been found to be highly suitable in representing data having discontinuities such as sharp edges. Such discontinuities are often present in image data or the like.
Typically, data compression using wavelet techniques is a two step process. It comprises, firstly, a transform phase, during which the wavelet transform of the data set is calculated, and secondly a subsequent coding stage during which the resultant data set from the transform operation is separated into segments which are then coded using a specific coder. In decompression, the reverse occurs, with coded blocks being first decoded, and subsequently the inverse wavelet transform being applied to generate the final decompressed output.
Typically, the wavelet transform operation utilises a number of wavelet filters. These filters are typically digital filters, such as finite impulse response (FIR filters) which ideally are linear and require a small number of taps. These filters process the digital images in bands and typically require a large external store for storing overlapping pixels, coefficients, and/or intermediate results for processing the next band. The bandwidth to the external store is typically limited, which restricts the rate of reading and writing of overlapping pixels, coefficients, and/or intermediate results to the store.